package model

// 进件状态更新通知
type ApplymentNotification struct {
	ApplyNo            string `json:"apply_no"`
	BizApplyNo         string `json:"biz_apply_no"`
	BrandID            string `json:"brand_id"`
	MchID              string `json:"mch_id"`
	SubMchID           string `json:"sub_mch_id"`
	ApplymentType      string `json:"applyment_type"`
	ApplymentState     string `json:"applyment_state"`
	ApplymentStateDesc string `json:"applyment_state_desc"`
	Timestamp          int64  `json:"timestamp"`
}

// 支付成功通知参数
type WxpayPayNotification struct {
	// 商户ID
	BrandID string `json:"brand_id"`
	// 服务商公众号ID
	AppID string `json:"app_id"`
	// 服务商户号
	MchID string `json:"mch_id"`
	// 二级商户公众号ID
	SubAppID string `json:"sub_app_id"`
	// 二级商户号
	SubMchID string `json:"sub_mch_id"`
	// 商户订单号
	OutTradeNo string `json:"out_trade_no"`
	// 微信支付订单号
	TransactionID string `json:"transaction_id"`
	// 交易类型
	TradeType string `json:"trade_type"`
	// 交易状态
	TradeState string `json:"trade_state"`
	// 交易状态描述
	TradeStateDesc string `json:"trade_state_desc"`
	// 附加数据
	Attach string `json:"attach"`
	// 支付完成时间
	SuccessTime string `json:"success_time"`
	// 消息时间戳
	Timestamp int64 `json:"timestamp"`
	// 服务费率 * 10000
	ServiceRate int64 `json:"service_rate"`
	// 服务费
	ServiceFee int64 `json:"service_fee"`
}

// 退款变更通知
type WxpayRefundNotification struct {
	// 商户ID
	BrandID string `json:"brand_id"`
	// 服务商公众号ID
	AppID string `json:"app_id"`
	// 服务商户号
	MchID string `json:"mch_id"`
	// 二级商户公众号ID
	SubAppID string `json:"sub_app_id"`
	// 二级商户号
	SubMchID string `json:"sub_mch_id"`
	// 商户订单号
	OutTradeNo string `json:"out_trade_no"`
	// 微信支付订单号
	TransactionID string `json:"transaction_id"`
	// 商户退款单号
	OutRefundNo string `json:"out_refund_no"`
	// 微信退款单号
	RefundID string `json:"refund_id"`
	// 退款状态
	RefundStatus string `json:"refund_status"`
	// 退款成功时间
	SuccessTime string `json:"success_time"`
	// 退款入账账户
	UserReceivedAccount string `json:"user_received_account"`
	// 金额信息
	Amount RefundNotifyAmount `json:"amount"`
	// 消息时间戳
	Timestamp int64 `json:"timestamp"`
	// 退回服务费
	ServiceFeeReturn int64 `json:"service_fee_return"`
}

type RefundNotifyAmount struct {
	// 订单金额
	Total uint `json:"total"`
	// 退款金额
	Refund uint `json:"refund"`
	// 用户支付金额
	PayerTotal uint `json:"payer_total,omitempty"`
	// 用户退款金额
	PayerRefund uint `json:"payer_refund,omitempty"`
}
